QuTS hero
https://youtu.be/D_W_WorhBPM
SSD採用率の増大に伴い、破損したSSDからのデータの復元が困難なため、企業はデータ損失というリスクにさらされています。データの整合性に焦点を合わせて設計されているZFSは、エンドツーエンドのチェックサムを使用しハードウェアの欠陥、ファームウェアのバグ、またはメタデータエラーによって発生するサイレントデータ破損を検出して修正します。整合性の侵害が検出されると、データがアプリケーションに渡される前に、ZFSが自動的に、別のミラーのデータを使用して破損を修正します。QuTS heroは、そのデータが書き込まれてから変更されないようにするために、WORM(Write Once、Read Many Times)にも準拠しています。
インラインデータ重複排除は、書き込もうとするデータが既存のデータと重複していないかをブロック単位でチェックする機能だ。ファイルシステム自身が実装しているため、利用するクライアントのプロトコルなどに関わりなく自動的に重複排除が実行される。
特にVDIや仮想マシンを複数運用している環境では、とても効果が高い。前述のインライン圧縮と併用することで、容量だけではなくキャッシュの効率向上にもつながるため、パフォーマンスの向上も期待できる。
インラインコンパクションは、繰り返しの多いデータや小さなファイルをまとめることで、ストレージの利用効率を上げる機能だ。「ext4」などNASが旧来用いてきたファイルシステムでは、ブロックサイズを下回るファイルは実サイズが小さくても1ブロック分の容量を取ってしまう。例えば、ブロックサイズが4KBに設定されている場合、1KBのファイルが100万個あると、4GB分の領域が必要となってしまう。
それに対して、ZFSではブロックサイズに満たない微小ファイルは、まとめて同じブロックに格納できるため、ストレージをより効率的に利用できる。 QuTS heroが採用したZFSの名称は、「Zettabyte File System」の頭文字に由来する 大規模ボリュームを扱うと、例え発生確率が低いとしても、エラーの発生件数は無視できなくなる。例えば、ディスクコントローラーやファームウェアの問題によって、データを正しく書き込めた“つもり”になっていることもあり得る。また、チェックサムを使ってデータの整合性を取っている場合でも、同じブロックに記録していればデータとチェックサムの両方が古いままで更新されていなかった、ということもありがちだ。
そこでZFSでは、ディスク、ファームウェアやI/Oを含めてデータをやりとりする全ての経路でエラーが起こることを想定し、ブロック内だけでなくブロックツリー全体の整合を取る「エンドツーエンド」のチェックサムを採用している。ディスクへの書き込みを行う際には親ブロックにチェックサムを記録し、読み出し時にはメモリ上でチェックサムをチェックし、不正なデータが検出された際には冗長化されたデータから自動的に修復を実行するようになっている。
また、書き込み時には、データブロックの上書きではなく、複製されたデータブロックを新規作成して書き込みを行う「コピーオンライト方式」を採用しており、常に整合性が保たれるように配慮されている。
データの自己修復に必要な冗長化措置として、ZFSではファイルシステム自身にもRAID機能を持っている。中でも「RAID-Z」「RAID-Z2」は、「RAID5」や「RAID6」が抱える問題点を改善したZFSの独自機能だ。 RAID-Z/Z2がデータとエラーの検出と修復用のパリティを複数のディスクに分散して書き込むという点は、RAID5/6と共通している。
異なるのは、常に全てのディスクへの書き込みを行う点、そしてデータ書き込み時に、パリティの再計算に必要な既存データの読み出しを行わない点だ。前述のコピーオンライトによるデータの一貫性と合わせて、RAID5/6で発生しうる「ライトホール問題」(ディスク間の不整合)を回避でき、かつ高速に読み書きを行えるというメリットがある。
性能要求がきつい
2TBのSSDキャッシングをしたいならRAM64GB必要